import time
from apscheduler.schedulers.background import BackgroundScheduler
import subprocess


def shellcommand(command):
    # pass
    # "sleep 5;lm -l"
    res = subprocess.Popen(command, shell=True,
                           stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    # # 标准输出为空
    # res.stdout.read()
    # res.wait()
    print(res.pid, type(res.pid))
    out = str(res.stdout.read(), encoding="utf-8")  # 标准输出
    print(out, type(out))
    # #标准错误中有错误信息
    # res.stderr.read()
    outerr = str(res.stderr.read(), encoding="utf-8")  # 标准输出
    if outerr:
        print("发生错误,执行命令== " + command + " ==:")
        print(outerr, type(outerr))
        print("ERROR")
        time.sleep(1)
        return False, outerr
    else:
        return True, out
    res.stdout.close()  # 关闭
    res.stderr.close()  # 关闭
# print(str(r, encoding="utf-8"),type(r))


def job():
    # print('job:', time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())))
    shellcommand("python sunday_badminton_wu.py")


    # shellcommand("python test.py")
if __name__ == '__main__':
    # BackgroundScheduler: 适合于要求任何在程序后台运行的情况，当希望调度器在应用后台执行时使用。
    scheduler = BackgroundScheduler()
    # 采用非阻塞的方式
    # 采用固定时间间隔（interval）的方式，每隔3秒钟执行一次
    # scheduler.add_job(job, 'interval', seconds=3)
    scheduler.add_job(job, 'cron', day_of_week='6', hour='20', minute='15')
    # 这是一个独立的线程
    scheduler.start()
    # 其他任务是独立的线程
    while True:
        # print('完成任务')
        time.sleep(3600)
